Dynamic zooming of content with overlays

ABSTRACT

A dynamic zooming system may use overlays to display usage information over associated webpages. In one example, a replay manager may zoom-in on particular areas of the webpages to view more specific usage information. In another example, the replay manager may zoom-out the webpages to view more general usage information. The dynamic zooming system may use a first scaled overlay layer to dynamically vary a zoom level of the usage information to match a zoom level for the webpages. The dynamic zooming system also may use a second fixed overlay layer to display other usage information independently of the zoom-level for the webpages.

The present application claims priority to U.S. Provisional PatentApplication, Ser. No. 61/727,915, entitled: DYNAMIC ZOOMING OF HTMLCONTENT WITH OVERLAYS, filed Nov. 19, 2012, which is herein incorporatedby reference in its entirety.

FIELD

This application relates generally to data processing and, morespecifically, to displaying usage information.

BACKGROUND

A monitoring system may capture user events for webpages, such as mouseclicks, selections, keystroke entries, etc. An analysis system may trackand display the user events associated with different locations withinthe webpage. For example, the analysis system may display heatmaps thatshow where users clicked on different webpage objects.

The analysis system may display darker images in the heat maps torepresent more mouse clicks for the associated webpage location and maydisplay lighter images to represent fewer mouse clicks for theassociated webpage location. In another example, the analysis system maydisplay usage clusters of the heat map in different colors to representthe number of mouse clicks.

An operator may have difficulties visually associating usage informationwith underlying webpage objects. For example, the analysis system maydisplay a heat map usage cluster over multiple different webpageobjects. The operator may want to view more detailed usage informationfor particular webpage objects. However, the analysis system may onlydisplay one static heat map for the entire webpage.

BRIEF SUMMARY

A dynamic zooming system may use overlays to display usage informationover associated webpages. In one example, a replay manager may zoom-inon particular areas of the webpages to view more specific usageinformation. In another example, the replay manager may zoom-out thewebpages to view more general usage information. The dynamic zoomingsystem may use a first scaled overlay layer to dynamically vary a zoomlevel of the usage information to match a zoom level for the webpages.The dynamic zooming system also may use a second fixed overlay layer todisplay other usage information independently of the zoom-level for thewebpages.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 depicts an example dynamic zooming system.

FIG. 2 depicts example overlays displayed by a dynamic zooming system.

FIG. 3 depicts an example process for creating scaled overlay layers andfixed overlay layers.

FIG. 4 depicts an example process for dynamically zooming usageinformation in a scaled layer and a fixed layer.

FIG. 5 depicts an example heat map displayed in a scaled layer.

FIG. 6 depicts an example heat map displayed in response to a zoom levelchange.

FIG. 7 depicts an example of usage information displayed in a scaledlayer and in a fixed layer.

FIG. 8 depicts an example how a fixed layer and a scaled layer displayusage information in response to a zoom level change.

FIG. 9 depicts another example of usage information displayed in ascaled layer and in a fixed layer.

FIG. 10 depicts an example of how a fixed layer updates usageinformation after a zoom level change.

FIG. 11 depicts an example link analytics overlay.

FIG. 12 depicts an example of how a scaled layer and a fixed layerdisplay a link analytic overlay after a zoom level change.

FIG. 13 depicts an example computing system for implementing a dynamiczooming system.

DETAILED DESCRIPTION

FIG. 1 depicts an example diagram of a content management system 100. Astorage system 102 may store content, such as webpage 106 for a website104 operated by an enterprise. In one example, the enterprise may be anycompany that sells products and/or services on-line to users 120. Ofcourse, the enterprise operating storage system 102 and/or website 104may be any service, business, company, individual, or other entity thatprovides information to users 120. Webpage 106 may comprise a homewebpage for website 104 or any another webpage associated with website104.

A network 108 may operably couple storage system 102 to a content server130 and to different computing devices 118 and 138. Network 108 maycomprise any combination of local area networks (LANs), wide areanetworks (WANs), Internet Protocol (IP) networks, phone networks, PublicServices Telephone Networks (PSTN), wireless networks, cellularnetworks, Wi-Fi networks, Bluetooth networks, cable networks, databuses, or the like, or any combination thereof.

Content server 130 and computing devices 118 and 138 may comprise anydevices configured to store and process content for web sessions. Forexample, content server 130 may comprise a data and/or web server andcomputing devices 118 and 138 may comprise tablet computers, hand-helddevices, smart telephones, mobile telephones, personal digitalassistants (PDAs), laptop computers, personal computers, computerterminals, PSTN telephones, voice over internet protocol (VoIP) phones,or the like, or any combination thereof.

Any one of users 120 may use computing device 118 to access website 104.For example, one of users 120 may open a web browser 110 and sendHypertext Transfer Protocol (HTTP) requests over network 108 to website104. Website 104 may send webpage 106 back to web browser 110 inresponse to the HTTP requests. Web browser 110 then may display webpage106 on a computer screen of computing device 118. Webpage 106 maycontain webpage objects 114, such as text, icons, images, links, fields,hypertext markup language (HTML) code, extensible markup language (XML)code, document object models (DOMs) or the like, or any combinationthereof.

A client agent 116 may capture client data 122 associated with webpage106 during web sessions with users 120. Client data 122 may comprisemouse clicks, loaded webpages 106, text, control events, viewing timesfor webpage 106, viewing times for webpage objects 114, control events,or any other user input or state that may be entered during the websession. Client agent 116 may send captured client data 122 to contentsever 130.

An operator 112 may comprise an employee of the enterprise associatedwith website 104, or any other person who wants to view usageinformation for webpage 106. A replay manager 150 may operate oncomputing device 138 and replay previously captured web sessions, and/ordisplay usage information associated with webpage 106.

Replay manager 150 may replay web page information within a web browser140. For example, relay manager 150 may render webpage 106 previouslyloaded into web browser 110 during the original web session. Replaymanager 150 then may apply captured client data 122 to the renderedwebpage 106. For example, replay manager 150 may display text enteredinto fields of webpage 106 during the original application session anddisplay icons previously selected by users 120 during the applicationsessions.

An analytics engine 134 may derive usage information for webpage 106.For example, analytics engine 134 may determine a conversion rate, abounce rate, a number of mouse clicks, a percentage of mouse clicks, anamount of time users 120 spend on webpages 106, or the like, or anycombination thereof. Replay manager 150 may display the usageinformation in heat maps, reports, or any other objects. For example,replay manager 150 may display usage clusters 142 that identify mouseclick locations on associated webpage objects 114 and may display ausage report 136 that identifies a conversion rate for webpage 106.

Operator 112 may change a zoom level, size, and/or location for webpage106. For example, operator 112 may use a zoom controller 128, such as aslider bar icon, to zoom into specific areas of webpage 106. A zoomcoordinator 152 may dynamically adjust the zoom level of the usageinformation based on the zoom level of webpage 106. For example, zoomcoordinator 152 may dynamically adjust a height, width, scale, and/orposition of usage clusters 142 based on the new zoom level, size and/orlocation of webpage objects 114.

Zoom coordinator 152 may maintain a same zoom level, size, and/orlocation for other usage information independently of the change forwebpage 106. For example, zoom coordinator 152 may maintain a same zoomlevel, size and/or location for usage report 136. However, zoomcoordinator 152 may update the usage information displayed within usagereport 136 based on the change in webpage 106. In another example, zoomcoordinator 152 may continue to display the same usage informationwithin usage report 136 independently of the changes to webpage 106.

For discussion purposes, any changes to webpage 106, webpage objects114, and/or a content layer containing webpage 106 and/or webpageobjects 114 including but not limited to changes in height, width,scale, position, or the like, or any combination thereof will bereferred to below as a change in a zoom level.

FIG. 2 depicts a conceptual drawing of a content layer 144, a scaledlayer 146, and a fixed layer 148. Each layer 144, 146, and 148represents an overlay for a different Z-index level of a HTML stack.Webpage 106 may be contained within content layer 144 and webpageobjects 114 may be contained on incrementally higher Z-index layers ofcontent layer 144. However, webpage 106 and webpage objects 114 areshown within a same content layer 144 for illustrative purposes.

HTML may include Z-index properties for specifying a stack order forHTML elements. Objects with a greater stack order are displayed overobjects with a lower stack order. For example, objects contained withinscaled overlay layer 146 may have a higher z-index than objects locatedin content layer 144. HTML objects within fixed layer 148 may have ahigher Z-index than HTML objects within content layer 144 and scaledlayer 146.

Content layer 144 may consist of HTML inside a block-level element suchas a HTML Document Division Element (DIV) or an Inline Frame (IFRAME).Scaled layer 146 may comprise a transparent IFRAME that operates abovecontent layer 144 and matches the width, height, and position of contentlayer 144. Cascading style sheets 3 (CSS3) may transform the IFRAMEbased on changes in content layer 144. For example, changes in a zoomlevel 124 of content layer 144 may simultaneously cascade down to theCSS3 in scaled layer 146. Scaled layer 146 may be sandboxed from contentlayer 144 to prevent style errors. For example, objects in scaled layer146 and fixed layer 148 do not alter how webpage 106 is displayed incontent layer 144.

Scaled layer 146 or fixed layer 148 may display any usage informationassociated with webpage 106. For example, scaled layer 146 may displayheatmaps that identify the number of mouse clicks on associated htmlwebpage objects 114. In another example, scaled layer 146 may containattention maps that show how long users viewed webpage objects 114. Inyet another example, scaled layer 146 may display link analytics, suchas pins and form fields indicating a percentage of users clicking on thewebpage objects.

Fixed layer 148 may display reports that contain analytics associatewith the usage information. For example, the report may display heatmapcount associated with particular webpage objects. Of course, replaymanager 150 may display any other usage information in scaled layer 146or fixed layer 148. Fixed layer 148 also may display control elementssuch as a zoom controller or a page navigator for varying the webpagesand zoom levels of the webpages.

Zoom coordinator 152 may operate in conjunction with replay manager 150and analytics engine 134 to coordinate the calculation and display ofusage information within scaled layer 146 and fixed layer 148. Forexample, the operator may perform a zoom-in or zoom-out operation thatvaries zoom level 124 of content layer 144. Zoom coordinator 152 maydynamically vary a zoom level 126 of scaled layer 146 based on zoomlevel 124. For example, zoom coordinator 152 may vary a size, scale,and/or location of usage clusters 142 to cover a same relative area andlocation over associated webpage objects 114.

Zoom controller 152 may display the size, scale, and/or location ofobjects within fixed layer 148 independently of zoom level changes 124and 126. For example, prior to an operator initiated zoom operation,replay manager 150 may display usage report 136 at a particular locationand with a particular size within fixed layer 148. The operator then mayadjust zoom level 124 by either zooming-in or zooming-out content layer144. Zoom coordinator 152 may vary zoom level 126 of usage clusters 142within scaled layer 146 to match zoom level 124. However, zoomcoordinator 152 may continue to display usage report 136 at the samesize, scale, and/or location within fixed layer 148 independently of thechange in zoom levels 124 and 126.

In one example, zoom coordinator 152 in coordination with analyticsengine 134 and replay manager 150 may fix the zoom level of usage report136 while dynamically and automatically updating the usage informationdisplayed within usage report 136. For example, usage report 136 maydisplay hit rates for different webpage objects 114 within webpage 106.The hit rates may indicate the percentage of clicks on webpage objects114.

The operator may change zoom level 124 and zoom coordinator 152 may varyzoom level 126 for scaled layer 146 to correspond with zoom level 124.Zoom coordinator 152 also may dynamically update the hit rate displayedin usage report 136 to correspond with the different webpage objects 114and associated usage clusters 142 displayed in the new zoom levels 124and 126.

For example, a first zoom level 124 of content layer 144 may display anentire webpage object 114 and a second zoomed-in level 124 of contentlayer 144 only may display a portion of the webpage object. Zoomcoordinator 152 may display a first hit rate in usage report 136 for theentire webpage object 114 displayed in the first zoom level 124. Zoomcoordinator 152 then may display a new hit rate in usage report 136 forthe partial portion of the webpage object 114 displayed in second zoomlevel 124.

Thus, zoom coordinator 152 in combination with replay manager 150 andanalytics engine 134 may display usage information in scaled layer 144over associated HTML objects in content layer 144. Zoom coordinator 152also may dynamically zoom the usage information, such as usage clusters142, over associated HTML webpage objects 114 in response to changes inzoom level 124.

Zoom coordinator 152 may display other usage information in fixed layer148 above scaled layer 146. Zoom coordinator 152 may display usageinformation within fixed layer 148 at a particular size and locationindependently of changes to zoom levels 124 and 126. However, zoomcoordinator 152 may dynamically update statistics for the usageinformation based on changes in zoom levels 124 and 126.

FIG. 3 depicts an example process for implementing dynamic zooming. Inoperation 160, the replay manager may create and/or enable the zoomcoordinator when a webpage is loaded. For example, the replay managermay create an instance of the zoom coordinator as described below inTable 1.0. This instance may exist at the window level of the webpagedocument and may trigger other operations when the replay manageractivates overlays.

Table 1.0 shows one example of a zoom coordinator instance for insertioninto webpage HTTP code and interaction with replay manager 150.

TABLE 1.0 var application = new cxzoom( );

The replay manager in operation 162 may create a DIV container for thefixed layer. The replay manager may insert the DIV container on top ofthe content layer and may configure the DIV container with dimensionslarge enough to hold the content layer.

The replay manager in operation 164 may create an IFRAME for the scaledlayer and operation 164 may inject the scaled layer inside of the IFRAMEabove the content layer. Table 2.0 shows one example of how the replaymanager may append or inject a scaled layer inside of the content layer.The code in Table 2.0 may generate an IFRAME for scaled layer 146 thatmatches the size of content layer 144.

TABLE 2.0 var scaledLayer = document.createElement(′iframe′);scaledLayer.src = ′overlay.html′; matchContentLayerSize(scaledLayer);matchContentLayerPosition(scaledLayer);contentLayer.contentWindow.document.body.appendChild(scaledLayer);

The replay manger in operation 168 may create a scaled layer applicationinstance. For example, the replay manager may create objects inside ofjava script and pass the objects to the scaled layer and the fixedlayer. The scaled layer instance may be a separate instance that enablestwo-way communication between the fixed layer and the scaled layer.

Table 3.0 shows one example of code that creates a scaled layer instancethat enables the two-way communication between fixed layer 148 andscaled layer 146.

TABLE 3.0 scaledLayer.onload = function( ) {  var instance =contentLayer.contentWindow.createInstance(application); instance.fixedLayer = application;  application.scaledLayer = instance;};

Operation 170 may attach scaling overlays to the scaled layer andoperation 172 may attach non-scaling overlays to the fixed layer. Thereplay manager may attach the overlays in response to operator inputs.For example, the operator may direct the replay manager to load specificoverlays, such as form analytics. In response to the operator input, thereplay manager may attach components for the associated form analyticsto the scaled and fixed layers. If the user then selects a heat map, thereplay manager may delete the form analytics components from theoverlays and attach the heat map components to the overlays.

FIG. 4 depicts one example of how the replay manager may dynamicallyzoom usage information. In operation 180, the replay manager may displayobjects in the content layer, scaled layer, and fixed layer based onoperator inputs. For example, the operator may select a particularwebpage and select a particular type of analytics, such as a heat map.The replay manager then loads the selected webpage into a computerdevice and load display objects for the heat map into the webpage.

In operation 182, the zoom coordinator may detect a change in zoom levelof the content layer. For example, the operator may zoom-in or zoom-outthe webpage loaded by the replay manager. The zoom coordinator may firean event that updates the scaled and/or fixed layer based on the newzoom level.

As described above, the zoom coordinator may handle the eventdifferently for the content layer and the scale layer. In operation 184,the zoom coordinator may adjust the zoom level of the scaled layer tocorrespond to the zoom level of the content layer. For example, theoperator may zoom-in on the loaded webpage. The zoom coordinator maydynamically zoom-in the usage information displayed in the scaled layerto correspond with the new zoom level. For example, the zoom coordinatormay enlarge usage clusters in response to a zoom-in operation to cover asame relative location and portion of associated webpage objects.

In operation 186, the zoom coordinator may update the usage informationdisplayed in the fixed layer to correspond to the zoom level for thecontent layer and scaled layer. For example, the zoom coordinator mayupdate the usage information displayed in the fixed layer to correspondwith the different portions of the webpage in the content layer andusage information in the scaled layer displayed after the zoom levelchange. However, the zoom coordinator may not vary the zoom level ofcontrol elements in the fixed layer or the zoom level of reportsdisplaying usage information in the fixed layer.

Table 4.0 shows example code for a redraw function that executes after azoom event. The operator may trigger the redraw function by changing thezoom level with the zoom controller displayed within the fixed layer.

TABLE 4.0 var redraw = function( ) { contentLayer.css({ ′transform′:′scale(′ + getZoomLevel( ) + ′)′, ′transform-origin′: getOrigin( ),′margin′: getMargin( ) }); };

FIG. 5 depicts an example webpage displayed within a screen 154 ofcomputing device 138 during a replay session. The replay manager maydisplay webpage 106 and webpage objects 114A-114G within content layer144. The replay manager may display usage clusters 142A-142D withinscaled layer 146 over associated webpage objects 114A-114D,respectively, and may display other usage information (not shown) infixed layer 148 over content layer 144 and scaled layer 146.

Content layer 144 is shown in dotted lines and scaled layer 146 is shownextending over content layer 144. For illustrative purposes, an outsideperimeter of scaled layer 146 extends out beyond an outside perimeter ofcontent layer 144. However, the objects within scaled layer 146 maygenerally be dynamically zoomed to a same zoom level as webpage 106 andwebpage objects 114 within content layer 144. Fixed layer 148 is shownwith an outside perimeter that extends beyond the outside perimeters ofcontent layer 144 and fixed layer 146.

The replay manager may display scaled layer 146 in a transparent color.For example, the replay manager may display usage clusters 142 insemi-transparent colors so the operator may view associated underlyingwebpage objects 114. As mentioned above, usage clusters 142 mayrepresent places on webpage 106 where users performed mouse clicks,selections, entered data, etc. In one example, the replay manager maydisplay usage clusters 142 with different colors or shades based on thenumber of associated user events. For example, the replay manager mayuse darker colors for the usage clusters 142 associated with more mouseclicks.

The replay manager may display zoom controller 128 within fixed layer148. The operator may select zoom controller 128 with cursor 190 tochange a zoom level of the objects within content layer 144. Forexample, the operator may drag a selector displayed on zoom controller128 upwards to zoom-in webpage 106 and may drag the selector downwardsto zoom-out webpage 106.

In another example, the replay manager may vary a size of webpage 106 inresponse to the operator selecting and dragging a corner of webpage 106inward or outward. In another example, the replay manager may display adifferent portion of webpage 160 in response to the operator usingcursor 190 to display a different portion of another webpage 106. Thereplay manager may dynamically zoom and/or move objects in scaled layer146 and update usage information displayed within scaled layer 146 andfixed layer 148 based on the operator selections.

FIG. 6 depicts one example of how the replay manager may dynamicallyzoom the scaled layer. In this example, the operator may have zoomed-outwebpage 106 reducing the size of webpage objects 114A-114G and revealingadditional webpage object 114H.

The replay manager may automatically change the zoom level of objectswithin scaled layer 146 to match the zoom level of webpage 106. Forexample, the replay manager may adjust the size, scale, and position ofusage clusters 142A-142D to maintain a same relative size, scale, andposition over associated zoomed-out webpage objects 114A-114D,respectively. The replay manager also may update usage informationdisplayed within scaled layer 146 based on the operator input. Forexample, the replay manager may dynamically display new usage clusters142H associated with newly displayed webpage object 114.

FIG. 7 depicts an example of how the replay system may display usageinformation within the fixed layer. The fixed layer may include anobject displaying usage report 136. As mentioned above, the fixed layeralso may include an object displaying zoom controller 128. The replaymanager may display usage report 136 in response to the operatorselecting one of tabs 192, or selecting or hovering over one of webpageobjects 114 or usage clusters 142. The replay manager may obtain theusage information displayed in usage report 136 from the analyticsmanager.

The display manager may display any type of usage information withinusage report 136. For example, as mentioned above usage report 136 maydisplay a number of views for webpage 106, a number of hits on specificwebpage objects 114. a bounce rate percentage for webpage 106, or thelike, or any combination thereof. In another example, usage report 136may identify when users clicked on webpage objects 114, the percentageof mouse clicks resulting in purchases, demographic information for theusers associated with usage clusters 142, or the like, or anycombination thereof.

Fields 194A-194C in usage report 136 may identify hit rates fordifferent webpage objects 114A, 114B, and 114D, respectively. Forexample, the analytic system may count the number of times differentusers accessed webpage 106 over a given time period and count the totalnumber of times each webpage object 114 was selected. Fields 194A-194Cthen may display the hit rates for webpage objects 114A, 114B, and 114D,respectively.

In one example, the replay manager may not display usage clusters 142over certain portions of webpage 106. For example, the number of userclicks for webpage object 114E may be too small to display an associatedusage cluster 142. The replay manager still may display analytic data bymoving cursor 190 over webpage object 114E. The replay manager maydetect the mouseover and display a popup report (not shown) identifyinga number of mouse clicks, or any other usage information, associatedwith webpage object 114E. The object displaying popup report may belocated within fixed layer 148 or scaled layer 146.

The replay manager may highlight one of webpage objects 114 in responseto selection of one of fields 194. For example, the operator may selectfield 194C to provide a visual indicator of the associated webpageobject 114D. In response to selection of field 194, the replay managermay insert an object within scaled layer 146 generating a transparent ortranslucent image 196 over webpage object 114D and usage cluster 142D.For example, a first object within fixed layer 148 may display usagerepot 136. The first object may active a second object within scaledlayer 146 that activates image 196.

FIG. 8 depicts one example of how the replay manager may display objectswithin fixed layer after a zoom operation. In this example, the replaymanager may zoom-out webpage 106 in response to the operator moving theslider-bar on zoom controller 128. The replay manager may reduce thesize of webpage 106 and webpage objects 114 and display additionalwebpage object 114H.

The replay manager may again dynamically zoom-out scaled layer 146 tomatch the zoom level of content layer 146. For example, the replaymanager may reduce the size of usage clusters 142 proportionally withthe reduced size of associated webpage objects 114. The replay manageralso may reduce the size of highlighted image 196 to match the reducedsize of webpage object 114D.

The replay manager may continue to display usage information and controlinformation within fixed layer 148 independently of the zoom level ofcontent layer 144 and scaled layer 146. For example, the replay managermay display usage report 136 and the usage information within fields194A-194C at the same size and location as displayed prior to the zoomoperation. The replay manager also may display the zoom controller 152at a same size and location within fixed layer 148 as displayed beforethe zoom operation.

FIG. 9 depicts another example of how the replay manager may dynamicallyzoom usage information. The replay manager may display webpage 200 andwebpage objects 204 and 208 within content layer 144. The replay managermay display usage clusters 206A-206D within scaled layer 146 overassociated webpage object 204. The replay manager also may display usageclusters 210A-210D within scaled layer 146 over associated with webpageobject 208.

The replay manager may display zoom controller 128, an analysis box 202,and a usage report 212 within fixed layer 148. A first object withinscaled layer 146 may count the usage information within the boundary ofanalysis box 202. The first object then may pass the count value to asecond object within fixed layer 148 that displays the count in usagereport 212.

For example, analysis box 202 may extend over usage clusters 206C and206D. The replay manager may count the number user clicks associatedwith usage clusters 206C and 206D and display the count number in usagereport 212. For example, usage report 212 may identify 20 data pointsselected for usage clusters 206C and 206D.

FIG. 10 depicts an example of how the display manager may update usageinformation in the fixed layer. The operator may change the zoom levelof content layer 144 displayed in FIG. 9 by moving the slider on zoomcontroller 128 with cursor 190. In this example, the operator mayzoom-out content layer layer 144 reducing the size of webpage 200 andrevealing an additional webpage 214. The replay manager may reduce thesize of webpage objects 204 and 208 in response to the zoom-outoperation. The replay manager also may change the zoom level of usageclusters 206 and 219 within scaled layer 146 to match the new zoom levelof content layer 144.

Analysis box 202 may cover a different group of usage clusters after thechange in the zoom level of content layer 144. For example, analysis box202 now may cover usage clusters 206A and 210A. The first object withinscaled layer 146 associated with analysis box 202 may recount the numberof data points associated with usage clusters 206A and 210A.

The first object may send the count number to the second object withinfixed layer 148 displaying analysis box 202. The second object thendisplays the new count number in usage report 212. Thus, the replaymanager may dynamically vary the usage information displayed in analyticbox 202 based on the zoom level or movement of objects within contentlayer 144 and scaled layer 146.

The replay manager may display analytic box 202 at a default size andlocation. The operator may use cursor 190 to resize and/or repositionanalytic box 202. The analytic engine may supply an original set of datapoints to the replay manager. The replay manager then may scale thenumber of data points and apply an offset to the data points todetermine what count value to display within analytic box 202.

FIG. 11 depicts an example of a link analytics overlay. The replaymanager may display pin icons 222A-222C next to associated HTML webpageobjects 204, 208, and 209, respectively. The replay manager also maydisplay form fields 224A-224C next to associated pin icons 222A-22C,respectively. The replay manager may display pin icons 222 for the mosthighly selected webpage objects. For example, the top selection ratesmay comprise 37.2% for webpage object 204, 15.2% for webpage object 208,and 1.5% for webpage object 209. The replay manager may display theselection rates in associated form fields 224A-224C, respectively. Thereplay manager may attach a first object to scaled layer 146 thatdisplays pin icons 222 and associated form fields 224.

The first object within scaled layer 146 may communicate with a secondobject within fixed layer 148. The second object may display a dialogbox 220. The operator may select or hover over one of pin icons 222,such as pin icon 222A. The first object within scaled layer 146 mayactivate the second object within fixed layer 148 to display dialog box220.

The first object also may send the selection rate for the selected pinicon 222A to the second object. The second object then may display theselection rate in dialog box 220. The second object may displayadditional usage information. For example, dialog box 220 may identifyboth the 37.5% click rate for webpage object 204 and identify the totalnumber of clicks or user selections for webpage object 204.

FIG. 12 depicts an example of how the replay manager may dynamicallyzoom the links analytics overlay. The operator may zoom-out webpage 200in response to a new zoom level selected by the operator via zoomcontroller 128. Since pin icons 222 and associated form fields 224 arelocated within scaled layer 146, the replay manager may simultaneouslyzoom-out pin icons 222 and form fields 224 with webpage 200.

Since dialog box 220 is located within fixed layer 148, the replaymanager may continue to display dialog box 220 and the usage informationwithin dialog box 220 at the same size and location within fixed layer148 independently of the new zoom level. The first object within scaledlayer 146 may continue to pass the selection rate information to thesecond object within fixed layer 148. Thus, dialog box 220 continues todisplay the selection rate information as form field 224A independentlyof the smaller size of pin icon 222A, form field 224A, and the usageinformation within form field 224A.

The dynamic zooming described above may be helpful when displaying usageinformation for application sessions with mobile devices. The mobiledevices may have relatively small screens compared with the screens onpersonal computers. Thus, an operator may need to zoom-in and/or movethe smaller electronic pages associated with the mobile devices to viewassociated usage information. Dynamic zooming allows an operator tozoom-in to different specific locations with the electronic pages stillclearly see associated usage information.

Hardware and Software

FIG. 13 shows a computing device 1000 that may be used for operating thedynamic zooming system discussed above. The computing device 1000 mayoperate in the capacity of a server or a client machine in aserver-client network environment, or as a peer machine in apeer-to-peer (or distributed) network environment. In other examples,computing device 1000 may be a personal computer (PC), a tablet, aPersonal Digital Assistant (PDA), a cellular telephone, a smart phone, aweb appliance, or any other machine or device capable of executinginstructions 1006 (sequential or otherwise) that specify actions to betaken by that machine.

While only a single computing device 1000 is shown, the computing device1000 may include any collection of devices or circuitry thatindividually or jointly execute a set (or multiple sets) of instructionsto perform any one or more of the operations discussed above. Computingdevice 1000 may be part of an integrated control system or systemmanager, or may be provided as a portable electronic device configuredto interface with a networked system either locally or remotely viawireless transmission.

Processors 1004 may comprise a central processing unit (CPU), a graphicsprocessing unit (GPU), programmable logic devices, dedicated processorsystems, micro controllers, or microprocessors that may perform some orall of the operations described above. Processors 1004 may also include,but may not be limited to, an analog processor, a digital processor, amicroprocessor, multi-core processor, processor array, networkprocessor, etc.

Some of the operations described above may be implemented in softwareand other operations may be implemented in hardware. One or more of theoperations, processes, or methods described herein may be performed byan apparatus, device, or system similar to those as described herein andwith reference to the illustrated figures.

Processors 1004 may execute instructions or “code” 1006 stored in anyone of memories 1008, 1010, or 1020. The memories may store data aswell. Instructions 1006 and data can also be transmitted or receivedover a network 1014 via a network interface device 1012 utilizing anyone of a number of well-known transfer protocols.

Memories 1008, 1010, and 1020 may be integrated together with processingdevice 1000, for example RAM or FLASH memory disposed within anintegrated circuit microprocessor or the like. In other examples, thememory may comprise an independent device, such as an external diskdrive, storage array, or any other storage devices used in databasesystems. The memory and processing devices may be operatively coupledtogether, or in communication with each other, for example by an I/Oport, network connection, etc. such that the processing device may reada file stored on the memory.

Some memory may be “read only” by design (ROM) by virtue of permissionsettings, or not. Other examples of memory may include, but may be notlimited to, WORM, EPROM, EEPROM, FLASH, etc. which may be implemented insolid state semiconductor devices. Other memories may comprise movingparts, such a conventional rotating disk drive. All such memories may be“machine-readable” in that they may be readable by a processing device.

“Computer-readable storage medium” (or alternatively, “machine-readablestorage medium”) may include all of the foregoing types of memory, aswell as new technologies that may arise in the future, as long as theymay be capable of storing digital information in the nature of acomputer program or other data, at least temporarily, in such a mannerthat the stored information may be “read” by an appropriate processingdevice. The term “computer-readable” may not be limited to thehistorical usage of “computer” to imply a complete mainframe,mini-computer, desktop, wireless device, or even a laptop computer.Rather, “computer-readable” may comprise storage medium that may bereadable by a processor, processing device, or any computing system.Such media may be any available media that may be locally and/orremotely accessible by a computer or processor, and may include volatileand non-volatile media, and removable and non-removable media.

Computing device 1000 can further include a video display 1016, such asa liquid crystal display (LCD) or a cathode ray tube (CRT)) and a userinterface 1018, such as a keyboard, mouse, touch screen, etc. All of thecomponents of computing device 1000 may be connected together via a bus1002 and/or network.

For the sake of convenience, operations may be described as variousinterconnected or coupled functional blocks or diagrams. However, theremay be cases where these functional blocks or diagrams may beequivalently aggregated into a single logic device, program or operationwith unclear boundaries.

Having described and illustrated the principles of a preferredembodiment, it should be apparent that the embodiments may be modifiedin arrangement and detail without departing from such principles. Claimis made to all modifications and variation coming within the spirit andscope of the following claims.

1-28. (canceled)
 29. A system comprising: a database configured forstoring information regarding webpages displayed during a web sessionand user events occurring during the web session; an Analytics Engineconfigured for obtaining usage information relating to the web session;and a Replay Manager configured for replay of the web session using theusage information, wherein the Replay Manager comprises a ZoomCoordinator configured to enable, during the replay of the web session,adjusting a zoom level of displayed usage information based on a zoomlevel of a displayed webpage, wherein the zoom level of the displayedwebpage varies during the replay; wherein the zoom level of thedisplayed usage information is adjustable to be fixed or to vary tomatch the zoom level of the displayed web page; wherein the ReplayManager is configured to utilize an HTML stack of layers comprising: acontent layer for use in displaying webpage objects; a scaled overlaylayer for displaying usage information at a zoom level to match a zoomlevel of a displayed webpage; and a fixed overlay layer for displayingusage information at a zoom level that is fixed and independent of adisplayed webpage zoom level, wherein the HTML stack of layers isordered such that scaled overlay layer HTML objects overlay contentlayer HTML objects, and fixed overlay layer HTML objects overlay contentlayer HTML objects and scaled overlay layer HTML objects; and whereinthe Replay Manager is configured to enable communication of usageinformation between the scaled overlay layer and the fixed overlaylayer.
 30. The system of claim 29, wherein the HTML stack of layers is az-index based stack, wherein the Replay Manager is configured to enablecommunication of usage information between the scaled overlay layer andthe fixed overlay layer, and wherein the Replay Manager is configured toenable communication of usage information from an object located withinthe scaled overlay layer to an object located within the fixed overlaylayer.
 31. The system of claim 29, wherein the HTML stack of layers is az-index based stack, wherein the Replay Manager is configured to enablecommunication of usage information between the scaled overlay layer andthe fixed overlay layer, and wherein the Replay Manager is configured toenable communication of usage information from an object located withinthe scaled overlay layer to an object located within the fixed overlaylayer, and wherein the scaled overlay layer is a separate applicationinstance from the fixed overlay layer.
 32. The system of claim 29,wherein the HTML stack of layers is ordered such that, when HTML objectsare displayed at least partially in the same display location, scaledoverlay layer HTML objects overlay content layer HTML objects, and fixedoverlay layer HTML objects overlay content layer HTML objects and scaledoverlay layer HTML objects.
 33. The system of claim 29, wherein the zoomcoordinator is configured to: display webpage content objects in thecontent layer; display first usage information in the scaled overlaylayer; display second usage information in the fixed overlay layer; andenable zooming to change zoom level; wherein, during zooming, a zoomlevel of the displayed first usage information is adjusted to match azoom level of the content objects, and wherein a zoom level of thesecond usage information is kept fixed.
 34. The system of claim 29,wherein the zoom level of the displayed webpage varies during the replaybased on user selection during the replay.
 35. The system of claim 29,wherein displayed usage information comprises a displayed heat maprelating to the user events.
 36. The system of claim 29, wherein theuser events comprise user clicks, user selections, and user keystrokeentries.
 37. The system of claim 29, wherein the Replay Manager isconfigured to display an analysis box, wherein a first HTML object ofthe scaled overlay layer: counts first usage information within aboundary of the analysis box; obtains a count value relating to thefirst usage information; and passes the count value to a second HTMLobject of the fixed overlay layer for fixed display during zooming. 38.The system of claim 29, wherein usage information comprises conversionrate information, number of mouse clicks information, percentage ofmouse clicks information, and information regarding an amount of timethat a user spent on a web page during a web session.
 39. The system ofclaim 29, wherein the scaled overlay layer comprises a transparentIframe.
 40. The system of claim 29, wherein the webpage comprises aDocument Object Model (DOM) structure.
 41. The system of claim 29,wherein replay and zooming take place on a mobile device.
 42. The systemof claim 29, wherein, during replay, webpages and usage information isdisplayed on a display of a mobile device.
 43. A method comprising:Storing, in a database, information regarding webpages displayed duringa web session and user events occurring during the web session;obtaining usage information relating to the web session; and replayingthe web session using the usage information, comprising, during replayof the web session, adjusting a zoom level of displayed usageinformation based on a zoom level of a displayed webpage, wherein thezoom level of the displayed webpage varies during the replay; whereinthe zoom level of the displayed usage information is adjustable to befixed or to vary to match the zoom level of the displayed web page;wherein the replay utilizes an HTML stack of layers comprising: acontent layer for use in displaying webpage objects; a scaled overlaylayer for displaying usage information at a zoom level to match a zoomlevel of a displayed webpage; and a fixed overlay layer for displayingusage information at a zoom level that is fixed and independent of adisplayed webpage zoom level, wherein the HTML stack of layers isordered such that scaled overlay layer HTML objects overlay contentlayer HTML objects, and fixed overlay layer HTML objects overlay contentlayer HTML objects and scaled overlay layer HTML objects; and whereinusage information is communicated between the scaled overlay layer andthe fixed overlay layer.
 44. The method of claim 43, comprisingutilizing the HTML stack of layers for the replay, wherein the HTMLstack of layers is a z-index based stack, wherein usage information iscommunicated between the scaled overlay layer and the fixed overlaylayer, and wherein usage information is communicated from an objectlocated within the scaled overlay layer to an object located within thefixed overlay layer.
 45. The method of claim 43, comprising utilizingthe HTML stack of layers for the replay, wherein the HTML stack oflayers is a z-index based stack, wherein usage information iscommunicated between the scaled overlay layer and the fixed overlaylayer, and wherein usage information is communicated from an objectlocated within the scaled overlay layer to an object located within thefixed overlay layer, and wherein the scaled overlay layer is a separateapplication instance from the fixed overlay layer.
 46. The method ofclaim 43, comprising utilizing the HTML stack of layers for the replay,wherein the HTML stack of layers is ordered such that, when HTML objectsare displayed at least partially in the same display location, scaledoverlay layer HTML objects overlay content layer HTML objects, and fixedoverlay layer HTML objects overlay content layer HTML objects and scaledoverlay layer HTML objects.
 47. The method of claim 43, comprising:displaying webpage content objects in the content layer; displayingfirst usage information in the scaled overlay layer; displaying secondusage information in the fixed overlay layer; and enabling zooming tochange zoom level; wherein, during zooming, a zoom level of thedisplayed first usage information is adjusted to match a zoom level ofthe content objects, and wherein a zoom level of the second usageinformation is kept fixed.
 48. The method of claim 43, comprisingdisplaying the webpage, wherein the webpage comprises a Document ObjectModel (DOM) structure.
 49. The method of claim 43, comprising replayingthe web session, wherein replay and zooming take place on a mobiledevice.
 50. A non-transitory computer readable medium or mediacontaining instructions for executing a method comprising: Storing, in adatabase, information regarding webpages displayed during a web sessionand user events occurring during the web session; obtaining usageinformation relating to the web session; and replaying the web sessionusing the usage information, comprising, during replay of the websession, adjusting a zoom level of displayed usage information based ona zoom level of a displayed webpage, wherein the zoom level of thedisplayed webpage varies during the replay; wherein the zoom level ofthe displayed usage information is adjustable to be fixed or to vary tomatch the zoom level of the displayed web page; wherein the replayutilizes an HTML stack of layers comprising: a content layer for use indisplaying webpage objects; a scaled overlay layer for displaying usageinformation at a zoom level to match a zoom level of a displayedwebpage; and a fixed overlay layer for displaying usage information at azoom level that is fixed and independent of a displayed webpage zoomlevel, wherein the HTML stack of layers is ordered such that scaledoverlay layer HTML objects overlay content layer HTML objects, and fixedoverlay layer HTML objects overlay content layer HTML objects and scaledoverlay layer HTML objects; and wherein usage information iscommunicated between the scaled overlay layer and the fixed overlaylayer.